調査 : Android開発におけるkeystoreについて
from Android
Androidアプリは、DebugでもReleaseでも端末に必ず著名される。その著名に使用する「秘密鍵」を保持するのはkeystoreである。
Keystoreについて
keystore.properties として、以下のように記述する。
code:text
storeFile_debug=../../keystore/hoge.keystore.debug
storePassword_debug=android
keyAlias_debug=androiddebugkey
keyPassword_debug=android
../../../keystore/giga.keystore.debug という keystore ファイルを使う
その keystore を android というパスワードで開く
中にある androiddebugkey という鍵を使う
その鍵のパスワードは android
Android は署名されていない APK / AAB を基本的にアプリとして扱えない。
よって、Keystoreファイルによって、このアプリは誰の鍵で作られたものか?前回インストールしたアプリと同じ開発者か?アプリの更新と捉えてよいか?を保証する。
特に重要なのは 同じ applicationId のアプリを更新するには、基本的に同じ署名鍵が必要である点。
例えば端末内に既に jp.com.hoge.fuga が入っている時、Android は署名を見て、前に入っている jp.com.hoge.fuga と同じ鍵で署名されているか?を確認する。
.debugの参照先
プロジェクトルートの絶対パスが C:\Users\hoge\Documents\GitHub\fuga\ ならば
keystoreファイルの参照パスが ../../../keystore/hoge.keystore.debug なので
C:\Users\hoge\Documents\keystore\hoge.keystore.debug に存在することになる。
keystoreをプロジェクト内に保管しないことは正しい。
.gitignoreで無視しても人的エラーでpushしてしまうかもしれない(pushしたら鍵は使えなくなる)。
Base.ktなどkotlin上の扱い方については後ほど調べる。
参考
Android Keystore で鍵生成・暗号化/復号処理を行う https://zenn.dev/kaneko_s/articles/f1d5b7141dc2fd